\hypertarget{classCSocketIO}{
\section{\-C\-Socket\-I\-O \-Class \-Reference}
\label{classCSocketIO}\index{\-C\-Socket\-I\-O@{\-C\-Socket\-I\-O}}
}


{\ttfamily \#include $<$socket\-\_\-io.\-h$>$}

\-Inheritance diagram for \-C\-Socket\-I\-O\-:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classCSocketIO}
\end{center}
\end{figure}
\subsection*{\-Public \-Member \-Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classCSocketIO_a9724046eeb9c191317dded6e8bde5265}{\-C\-Socket\-I\-O} (\hyperlink{structNAudioFormats_1_1SStreamInfo}{\-N\-Audio\-Formats\-::\-S\-Stream\-Info} p\-Stream\-Info)
\item 
virtual \hyperlink{classCSocketIO_a8cec03b7cc1f133ef75169fda79f641c}{$\sim$\-C\-Socket\-I\-O} ()
\item 
virtual int \hyperlink{classCSocketIO_a9349696a29eb51ea6913db3d92278941}{init} (\hyperlink{properties__reader_8h_a67847fd00cb49d80dd45f61722eb9a43}{\-C\-Properties\-Reader} $\ast$p\-Config)
\item 
virtual int \hyperlink{classCSocketIO_a0a7a581185616277f6c2aaf815535bf4}{destroy} ()
\item 
virtual int \hyperlink{classCSocketIO_a6833b052f4210d42347426aacfbbbec8}{read} (void $\ast$$\ast$p\-Data, \hyperlink{classISampleIO_a33f1d3778c9c332648df649a73fdb44c}{\-E\-Action} \&p\-Action, int p\-Timeout=1000)
\item 
virtual int \hyperlink{classCSocketIO_a982ff25e4c3a1cea4a2b23ad323a7a3c}{write} (void $\ast$p\-Data, const \hyperlink{classISampleIO_a33f1d3778c9c332648df649a73fdb44c}{\-E\-Action} \&p\-Action, int p\-Length)
\item 
virtual \hyperlink{structNAudioFormats_1_1SStreamInfo}{\-N\-Audio\-Formats\-::\-S\-Stream\-Info} \hyperlink{classCSocketIO_a87e070962dc27f080ff1d4f9742e7e1d}{get\-Stream\-Info} ()
\end{DoxyCompactItemize}
\subsection*{\-Private \-Member \-Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classCSocketIO_a179f103c5a116a16367f235afe65f167}{\-C\-Socket\-I\-O} (const \hyperlink{classCSocketIO}{\-C\-Socket\-I\-O} \&)
\item 
\hyperlink{classCSocketIO}{\-C\-Socket\-I\-O} \& \hyperlink{classCSocketIO_ac9950d570e8a008488843b525ad60294}{operator=} (const \hyperlink{classCSocketIO}{\-C\-Socket\-I\-O} \&)
\item 
uint32\-\_\-t \hyperlink{classCSocketIO_a5e9fab3a2c7ea77eb1616d33b6b0b1f3}{full\-Recv} (void $\ast$p\-Buf, uint32\-\_\-t p\-Length)
\item 
int \hyperlink{classCSocketIO_ae77ebace84d6d61d33ddbab12f2fcbb5}{full\-Send} (const void $\ast$p\-Buf, int p\-Length)
\item 
void $\ast$ \hyperlink{classCSocketIO_aff01e1f45dbb273db744a20207b6d847}{get\-Byte\-Buffer} (int p\-Byte\-Length)
\end{DoxyCompactItemize}
\subsection*{\-Private \-Attributes}
\begin{DoxyCompactItemize}
\item 
\hyperlink{structNAudioFormats_1_1SStreamInfo}{\-N\-Audio\-Formats\-::\-S\-Stream\-Info} \hyperlink{classCSocketIO_a2c2f8befdbcf457ada609301d51bba20}{m\-Stream\-Info}
\item 
int \hyperlink{classCSocketIO_a87e16cb4b016c225122f1df378a1ee4f}{m\-Server\-Socket}
\item 
int \hyperlink{classCSocketIO_a5f70c73467416fbd066eb55e1950c3a2}{m\-Socket}
\item 
struct sockaddr\-\_\-in \hyperlink{classCSocketIO_aeb65989d72f5b1c0ee1485f021e00b5b}{m\-Server\-Address}
\item 
struct sockaddr\-\_\-in \hyperlink{classCSocketIO_a944c5a0fc27ebd27bbd06def59ad2989}{m\-Address}
\item 
char $\ast$ \hyperlink{classCSocketIO_ac6fe12231417cb44f014c93c94f5ba5e}{m\-Byte\-Buf}
\item 
int \hyperlink{classCSocketIO_a321b973760040423296ed27e367c7465}{m\-Byte\-Count}
\end{DoxyCompactItemize}
\subsection*{\-Static \-Private \-Attributes}
\begin{DoxyCompactItemize}
\item 
static const std\-::string \hyperlink{classCSocketIO_a19f5b72932b24b87cb496a956bd6ccbb}{s\-Ini\-Section} = \char`\"{}\-S\-O\-C\-K\-E\-T\-\_\-\-I\-O\char`\"{}
\end{DoxyCompactItemize}


\subsection{\-Constructor \& \-Destructor \-Documentation}
\hypertarget{classCSocketIO_a9724046eeb9c191317dded6e8bde5265}{
\index{\-C\-Socket\-I\-O@{\-C\-Socket\-I\-O}!\-C\-Socket\-I\-O@{\-C\-Socket\-I\-O}}
\index{\-C\-Socket\-I\-O@{\-C\-Socket\-I\-O}!CSocketIO@{\-C\-Socket\-I\-O}}
\subsubsection[{\-C\-Socket\-I\-O}]{\setlength{\rightskip}{0pt plus 5cm}\-C\-Socket\-I\-O\-::\-C\-Socket\-I\-O (
\begin{DoxyParamCaption}
\item[{{\bf \-N\-Audio\-Formats\-::\-S\-Stream\-Info}}]{p\-Stream\-Info}
\end{DoxyParamCaption}
)}}
\label{classCSocketIO_a9724046eeb9c191317dded6e8bde5265}
\hypertarget{classCSocketIO_a8cec03b7cc1f133ef75169fda79f641c}{
\index{\-C\-Socket\-I\-O@{\-C\-Socket\-I\-O}!$\sim$\-C\-Socket\-I\-O@{$\sim$\-C\-Socket\-I\-O}}
\index{$\sim$\-C\-Socket\-I\-O@{$\sim$\-C\-Socket\-I\-O}!CSocketIO@{\-C\-Socket\-I\-O}}
\subsubsection[{$\sim$\-C\-Socket\-I\-O}]{\setlength{\rightskip}{0pt plus 5cm}\-C\-Socket\-I\-O\-::$\sim$\-C\-Socket\-I\-O (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classCSocketIO_a8cec03b7cc1f133ef75169fda79f641c}
\hypertarget{classCSocketIO_a179f103c5a116a16367f235afe65f167}{
\index{\-C\-Socket\-I\-O@{\-C\-Socket\-I\-O}!\-C\-Socket\-I\-O@{\-C\-Socket\-I\-O}}
\index{\-C\-Socket\-I\-O@{\-C\-Socket\-I\-O}!CSocketIO@{\-C\-Socket\-I\-O}}
\subsubsection[{\-C\-Socket\-I\-O}]{\setlength{\rightskip}{0pt plus 5cm}\-C\-Socket\-I\-O\-::\-C\-Socket\-I\-O (
\begin{DoxyParamCaption}
\item[{const {\bf \-C\-Socket\-I\-O} \&}]{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCSocketIO_a179f103c5a116a16367f235afe65f167}


\subsection{\-Member \-Function \-Documentation}
\hypertarget{classCSocketIO_a0a7a581185616277f6c2aaf815535bf4}{
\index{\-C\-Socket\-I\-O@{\-C\-Socket\-I\-O}!destroy@{destroy}}
\index{destroy@{destroy}!CSocketIO@{\-C\-Socket\-I\-O}}
\subsubsection[{destroy}]{\setlength{\rightskip}{0pt plus 5cm}int \-C\-Socket\-I\-O\-::destroy (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classCSocketIO_a0a7a581185616277f6c2aaf815535bf4}


\-Implements \hyperlink{classISampleIO_a4a3ef7be5c5abba7f9993913380cb14f}{\-I\-Sample\-I\-O}.

\hypertarget{classCSocketIO_a5e9fab3a2c7ea77eb1616d33b6b0b1f3}{
\index{\-C\-Socket\-I\-O@{\-C\-Socket\-I\-O}!full\-Recv@{full\-Recv}}
\index{full\-Recv@{full\-Recv}!CSocketIO@{\-C\-Socket\-I\-O}}
\subsubsection[{full\-Recv}]{\setlength{\rightskip}{0pt plus 5cm}uint32\-\_\-t \-C\-Socket\-I\-O\-::full\-Recv (
\begin{DoxyParamCaption}
\item[{void $\ast$}]{p\-Buf, }
\item[{uint32\-\_\-t}]{p\-Length}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCSocketIO_a5e9fab3a2c7ea77eb1616d33b6b0b1f3}
\hypertarget{classCSocketIO_ae77ebace84d6d61d33ddbab12f2fcbb5}{
\index{\-C\-Socket\-I\-O@{\-C\-Socket\-I\-O}!full\-Send@{full\-Send}}
\index{full\-Send@{full\-Send}!CSocketIO@{\-C\-Socket\-I\-O}}
\subsubsection[{full\-Send}]{\setlength{\rightskip}{0pt plus 5cm}int \-C\-Socket\-I\-O\-::full\-Send (
\begin{DoxyParamCaption}
\item[{const void $\ast$}]{p\-Buf, }
\item[{int}]{p\-Length}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCSocketIO_ae77ebace84d6d61d33ddbab12f2fcbb5}
\hypertarget{classCSocketIO_aff01e1f45dbb273db744a20207b6d847}{
\index{\-C\-Socket\-I\-O@{\-C\-Socket\-I\-O}!get\-Byte\-Buffer@{get\-Byte\-Buffer}}
\index{get\-Byte\-Buffer@{get\-Byte\-Buffer}!CSocketIO@{\-C\-Socket\-I\-O}}
\subsubsection[{get\-Byte\-Buffer}]{\setlength{\rightskip}{0pt plus 5cm}void $\ast$ \-C\-Socket\-I\-O\-::get\-Byte\-Buffer (
\begin{DoxyParamCaption}
\item[{int}]{p\-Byte\-Length}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCSocketIO_aff01e1f45dbb273db744a20207b6d847}
\hypertarget{classCSocketIO_a87e070962dc27f080ff1d4f9742e7e1d}{
\index{\-C\-Socket\-I\-O@{\-C\-Socket\-I\-O}!get\-Stream\-Info@{get\-Stream\-Info}}
\index{get\-Stream\-Info@{get\-Stream\-Info}!CSocketIO@{\-C\-Socket\-I\-O}}
\subsubsection[{get\-Stream\-Info}]{\setlength{\rightskip}{0pt plus 5cm}{\bf \-N\-Audio\-Formats\-::\-S\-Stream\-Info} \-C\-Socket\-I\-O\-::get\-Stream\-Info (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classCSocketIO_a87e070962dc27f080ff1d4f9742e7e1d}


\-Implements \hyperlink{classISampleIO_a9e43c9190bd486f654f930aa49af48d1}{\-I\-Sample\-I\-O}.

\hypertarget{classCSocketIO_a9349696a29eb51ea6913db3d92278941}{
\index{\-C\-Socket\-I\-O@{\-C\-Socket\-I\-O}!init@{init}}
\index{init@{init}!CSocketIO@{\-C\-Socket\-I\-O}}
\subsubsection[{init}]{\setlength{\rightskip}{0pt plus 5cm}int \-C\-Socket\-I\-O\-::init (
\begin{DoxyParamCaption}
\item[{{\bf \-C\-Properties\-Reader} $\ast$}]{p\-Config}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classCSocketIO_a9349696a29eb51ea6913db3d92278941}
\begin{DoxyNote}{\-Note}
\-The instance of the properties reader will be freed (delete) by the main programm and is not allowed by the deconstructor of an inherit \-I\-O class.
\end{DoxyNote}

\begin{DoxyParams}{\-Parameters}
{\em p\-Config} & pointer to the properties reader \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{\-Returns}
0 on success, -\/1 otherwise 
\end{DoxyReturn}


\-Implements \hyperlink{classISampleIO_ab8ef7dd9048d0944d3c5f50329e0874d}{\-I\-Sample\-I\-O}.

\hypertarget{classCSocketIO_ac9950d570e8a008488843b525ad60294}{
\index{\-C\-Socket\-I\-O@{\-C\-Socket\-I\-O}!operator=@{operator=}}
\index{operator=@{operator=}!CSocketIO@{\-C\-Socket\-I\-O}}
\subsubsection[{operator=}]{\setlength{\rightskip}{0pt plus 5cm}{\bf \-C\-Socket\-I\-O}\& \-C\-Socket\-I\-O\-::operator= (
\begin{DoxyParamCaption}
\item[{const {\bf \-C\-Socket\-I\-O} \&}]{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCSocketIO_ac9950d570e8a008488843b525ad60294}
\hypertarget{classCSocketIO_a6833b052f4210d42347426aacfbbbec8}{
\index{\-C\-Socket\-I\-O@{\-C\-Socket\-I\-O}!read@{read}}
\index{read@{read}!CSocketIO@{\-C\-Socket\-I\-O}}
\subsubsection[{read}]{\setlength{\rightskip}{0pt plus 5cm}int \-C\-Socket\-I\-O\-::read (
\begin{DoxyParamCaption}
\item[{void $\ast$$\ast$}]{p\-Data, }
\item[{{\bf \-E\-Action} \&}]{p\-Action, }
\item[{int}]{p\-Timeout = {\ttfamily 1000}}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classCSocketIO_a6833b052f4210d42347426aacfbbbec8}

\begin{DoxyParams}{\-Parameters}
{\em p\-Data} & \-Array of bytes, read from media. \-The buffer for data will be provided by the read method. \-Therefore a void$\ast$$\ast$ and not a void$\ast$ is needed. \\
\hline
{\em p\-Action} & displays what has to be done, it also enables the direction from which data came from \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{\-Returns}
number of bytes read, 0 for \-E\-O\-F and -\/1 for a timeout or an error 
\end{DoxyReturn}


\-Implements \hyperlink{classISampleIO_a5843d1feda7bfffb86dd260a08f5516d}{\-I\-Sample\-I\-O}.

\hypertarget{classCSocketIO_a982ff25e4c3a1cea4a2b23ad323a7a3c}{
\index{\-C\-Socket\-I\-O@{\-C\-Socket\-I\-O}!write@{write}}
\index{write@{write}!CSocketIO@{\-C\-Socket\-I\-O}}
\subsubsection[{write}]{\setlength{\rightskip}{0pt plus 5cm}int \-C\-Socket\-I\-O\-::write (
\begin{DoxyParamCaption}
\item[{void $\ast$}]{p\-Data, }
\item[{const {\bf \-E\-Action} \&}]{p\-Action, }
\item[{int}]{p\-Length}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classCSocketIO_a982ff25e4c3a1cea4a2b23ad323a7a3c}

\begin{DoxyParams}{\-Parameters}
{\em p\-Data} & \-Address of the \-Buffer which will be written to the media. \\
\hline
{\em p\-Action} & displays what has to be done, it also enables the direction from which data came from \\
\hline
{\em p\-Length} & \-Length/\-Size of the buffer (unit\-: byte) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{\-Returns}
number of bytes written or -\/1 for an error 
\end{DoxyReturn}


\-Implements \hyperlink{classISampleIO_ae2026aece7114980b715076b45b906f9}{\-I\-Sample\-I\-O}.



\subsection{\-Member \-Data \-Documentation}
\hypertarget{classCSocketIO_a944c5a0fc27ebd27bbd06def59ad2989}{
\index{\-C\-Socket\-I\-O@{\-C\-Socket\-I\-O}!m\-Address@{m\-Address}}
\index{m\-Address@{m\-Address}!CSocketIO@{\-C\-Socket\-I\-O}}
\subsubsection[{m\-Address}]{\setlength{\rightskip}{0pt plus 5cm}struct sockaddr\-\_\-in {\bf \-C\-Socket\-I\-O\-::m\-Address}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCSocketIO_a944c5a0fc27ebd27bbd06def59ad2989}
\hypertarget{classCSocketIO_ac6fe12231417cb44f014c93c94f5ba5e}{
\index{\-C\-Socket\-I\-O@{\-C\-Socket\-I\-O}!m\-Byte\-Buf@{m\-Byte\-Buf}}
\index{m\-Byte\-Buf@{m\-Byte\-Buf}!CSocketIO@{\-C\-Socket\-I\-O}}
\subsubsection[{m\-Byte\-Buf}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ {\bf \-C\-Socket\-I\-O\-::m\-Byte\-Buf}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCSocketIO_ac6fe12231417cb44f014c93c94f5ba5e}
\hypertarget{classCSocketIO_a321b973760040423296ed27e367c7465}{
\index{\-C\-Socket\-I\-O@{\-C\-Socket\-I\-O}!m\-Byte\-Count@{m\-Byte\-Count}}
\index{m\-Byte\-Count@{m\-Byte\-Count}!CSocketIO@{\-C\-Socket\-I\-O}}
\subsubsection[{m\-Byte\-Count}]{\setlength{\rightskip}{0pt plus 5cm}int {\bf \-C\-Socket\-I\-O\-::m\-Byte\-Count}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCSocketIO_a321b973760040423296ed27e367c7465}
\hypertarget{classCSocketIO_aeb65989d72f5b1c0ee1485f021e00b5b}{
\index{\-C\-Socket\-I\-O@{\-C\-Socket\-I\-O}!m\-Server\-Address@{m\-Server\-Address}}
\index{m\-Server\-Address@{m\-Server\-Address}!CSocketIO@{\-C\-Socket\-I\-O}}
\subsubsection[{m\-Server\-Address}]{\setlength{\rightskip}{0pt plus 5cm}struct sockaddr\-\_\-in {\bf \-C\-Socket\-I\-O\-::m\-Server\-Address}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCSocketIO_aeb65989d72f5b1c0ee1485f021e00b5b}
\hypertarget{classCSocketIO_a87e16cb4b016c225122f1df378a1ee4f}{
\index{\-C\-Socket\-I\-O@{\-C\-Socket\-I\-O}!m\-Server\-Socket@{m\-Server\-Socket}}
\index{m\-Server\-Socket@{m\-Server\-Socket}!CSocketIO@{\-C\-Socket\-I\-O}}
\subsubsection[{m\-Server\-Socket}]{\setlength{\rightskip}{0pt plus 5cm}int {\bf \-C\-Socket\-I\-O\-::m\-Server\-Socket}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCSocketIO_a87e16cb4b016c225122f1df378a1ee4f}
\hypertarget{classCSocketIO_a5f70c73467416fbd066eb55e1950c3a2}{
\index{\-C\-Socket\-I\-O@{\-C\-Socket\-I\-O}!m\-Socket@{m\-Socket}}
\index{m\-Socket@{m\-Socket}!CSocketIO@{\-C\-Socket\-I\-O}}
\subsubsection[{m\-Socket}]{\setlength{\rightskip}{0pt plus 5cm}int {\bf \-C\-Socket\-I\-O\-::m\-Socket}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCSocketIO_a5f70c73467416fbd066eb55e1950c3a2}
\hypertarget{classCSocketIO_a2c2f8befdbcf457ada609301d51bba20}{
\index{\-C\-Socket\-I\-O@{\-C\-Socket\-I\-O}!m\-Stream\-Info@{m\-Stream\-Info}}
\index{m\-Stream\-Info@{m\-Stream\-Info}!CSocketIO@{\-C\-Socket\-I\-O}}
\subsubsection[{m\-Stream\-Info}]{\setlength{\rightskip}{0pt plus 5cm}{\bf \-N\-Audio\-Formats\-::\-S\-Stream\-Info} {\bf \-C\-Socket\-I\-O\-::m\-Stream\-Info}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCSocketIO_a2c2f8befdbcf457ada609301d51bba20}
\hypertarget{classCSocketIO_a19f5b72932b24b87cb496a956bd6ccbb}{
\index{\-C\-Socket\-I\-O@{\-C\-Socket\-I\-O}!s\-Ini\-Section@{s\-Ini\-Section}}
\index{s\-Ini\-Section@{s\-Ini\-Section}!CSocketIO@{\-C\-Socket\-I\-O}}
\subsubsection[{s\-Ini\-Section}]{\setlength{\rightskip}{0pt plus 5cm}const std\-::string {\bf \-C\-Socket\-I\-O\-::s\-Ini\-Section} = \char`\"{}\-S\-O\-C\-K\-E\-T\-\_\-\-I\-O\char`\"{}\hspace{0.3cm}{\ttfamily  \mbox{[}static, private\mbox{]}}}}
\label{classCSocketIO_a19f5b72932b24b87cb496a956bd6ccbb}


\-The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize}
\item 
\hyperlink{socket__io_8h}{socket\-\_\-io.\-h}\item 
\hyperlink{socket__io_8cxx}{socket\-\_\-io.\-cxx}\end{DoxyCompactItemize}
